package com.xiepxcc.annotation.base.anno;

import java.lang.annotation.*;

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LogAnnotation {

    /**
     *     1、如果只有一个参数成员,最好把参数名称设为"value"，因为如果Annotation中具有名为【value】的属性，在使用时如果只使用value属性的话，可以不写属性名直接指定值。
     *     2、注解元素必须有确定的值，要么在定义注解的默认值中指定，要么在使用注解时指定，非基本类型的注解元素的值不可为null。
     *     因此, 使用空字符串或0作为默认值是一种常用的做法。这个约束使得处理器很难表现一个元素的存在或缺失的状态，因为每个注解的声明中，所有元素都存在，并且都具有相应的值，为了绕开这个约束，我们只能定义一些特殊的值，例如空字符串或者负数，一次表示某个元素不存在，在定义注解时，这已经成为一个习惯用法。
     *     如：
     *     public int id() default -1;
     *     public String name() default "";
     *
     *
     *     3、只允许public或默认(default)这两个访问权修饰
     */

    //自定义注解的属性，default是设置默认值
    String type() default "info";

    String desc() default "无描述信息";
}
